﻿using B.S.DataBase.MyProject.Domain.wdx;
using B.S.DataBase.MyProject.Domain.医护移动端;
using B.S.DataBase.MyProject.Domain.基础设置;
using B.S.DataBase.MyProject.Domain.患者移动端;
using B.S.DataBase.MyProject.Domain.诊疗管理;
using B.S.DataBase.MyProject.Domain.知识管理;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace B.S.DataBase.MyProject.Infrastructure
{
    /// <summary>
    /// sqlsugar
    /// </summary>
    public class SqlSugarContext
    {
        public  SqlSugarClient db;

        public SqlSugarContext(SqlSugarClient db)
        {
            this.db = db;
        }

        public SqlSugarContext()
        {
            db = new SqlSugarClient(new ConnectionConfig()
            {
                ConnectionString = "Server=39.107.236.144;Port=3306;Database=Medlical;User ID=root;Password=Group2nb666;",
                DbType = DbType.MySql,//设置数据库类型
                IsAutoCloseConnection = true,//自动释放数据务，如果存在事务，在事务结束后释放
                InitKeyType = InitKeyType.Attribute //从实体特性中读取主键自增列信息
            },
            db =>
            {
                db.Aop.OnLogExecuting = (sql, pars)=>
                { //获取原生SQL推荐 5.1.4.63  性能
                    Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
                    //获取无参数化SQL，对性能有影响，特别大的SQL参数多的，调试使用
                    Console.WriteLine(UtilMethods.GetSqlString(DbType.SqlServer,sql,pars));
                };
            });
            //db.DbMaintenance.CreateDatabase();//创建数据库

            //db.CodeFirst.InitTables(typeof(TeamInfo));//基础设置-团队管理表
            //db.CodeFirst.InitTables(typeof(DiseaseManagement));//基础设置-种病管理表
            //db.CodeFirst.InitTables(typeof(DiseaseIndicators));//基础设置-慢病指标表
            //db.CodeFirst.InitTables(typeof(BloodPressureTest));//血压信息
            //db.CodeFirst.InitTables(typeof(CollectionManagement));//采集信息
            //wdx
            //db.CodeFirst.InitTables(typeof(Device));//基础设置-设备管理表
            //db.CodeFirst.InitTables(typeof(IndexClass));//基础设置-指标分类表
            //db.CodeFirst.InitTables(typeof(IndexDefine));//基础设置-指标定义表
            //db.CodeFirst.InitTables(typeof(NCDSign));//签约管理-慢病签约表
            //db.CodeFirst.InitTables(typeof(ResidentFiles));//档案管理-居民档案表
            //db.CodeFirst.InitTables(typeof(ServicesPack));//签约管理-服务包表
            //db.CodeFirst.InitTables(typeof(SignDeviceBind));//签约管理-签约设备绑定表
            db.CodeFirst.InitTables(typeof(MedicalRecords));//档案管理-居民就诊记录表
            //ryw
            //db.CodeFirst.InitTables(typeof(Blood));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(BMI));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Collection));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Information));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Me));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Pressure));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Recording));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Set));//签约管理-签约设备绑定表
            //db.CodeFirst.InitTables(typeof(Institution)); //转诊配置
            //db.CodeFirst.InitTables(typeof(FollowInfo));//医护移动端-患者随访
            //db.CodeFirst.InitTables(typeof(KnowledgeManagement));//医生PC端--知识管理
            //db.CodeFirst.InitTables(typeof(ChatListItem));//患者移动端--聊天列表
            //db.CodeFirst.InitTables(typeof(MessageServiceItem));//患者移动端--消息服务
            //db.CodeFirst.InitTables(typeof(SystemMessage));//患者移动端--系统信息


            db.Aop.OnLogExecuting = (sql, pars) =>
            {
                Console.WriteLine($"执行SQL:{sql},参数:{sql}");
            };

        }





    }

}
